/*
 * InterfaceWarehouse.java
 *
 * $Id: InterfaceWarehouse.java,v 1.12 2009-10-01 10:17:45 mario Exp $
 */
package org.ceteca.explica.core.warehouse;

/**
 * Interface with the constant definition of the values used in the
 * Warehouse module.
 * It holds names of the glade files that defines the GUI, 
 * names of GUI elements, log messages, paths of the icons and other 
 * resources used in the module, etc. 
 * <br/>
 * @author Mario García García <mario@imagos.es>
 * Copyright (c) 2007 Fundación Centro Tecnolóxico da Carne
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * <br/>
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * <br/>
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
public class InterfaceWarehouse {
	/**
     * Path to the warehouse module log configuration file.
     */
    public static final String WAREHOUSE_LOG_CONFIG_FILE = "/org/ceteca/explica/core/warehouse/log4j.xml";
    
    /**
     * Category of the warehouse logging method.
     */
    public static final String WAREHOUSE_LOG_CATEGORY = "WarehouseLog";
    
	/**
     * Path to the explica product edition interface glade file.
     */
	public static final String EXPLICA_EDIT_PRODUCT_GLADE_PATH = "/org/ceteca/explica/client/warehouse/explicaproduct.glade";
	
	/**
     * Path to the explica product group edition interface glade file.
     */
	public static final String EXPLICA_EDIT_PRODUCTGROUP_GLADE_PATH = "/org/ceteca/explica/client/warehouse/explicaproductgroup.glade";
	
	/**
     * Path to the explica measure unit interface glade file.
     */
	public static final String EXPLICA_EDIT_MEASUREUNIT_GLADE_PATH = "/org/ceteca/explica/client/warehouse/explicameasureunit.glade";
	
	/**
     * Path to the explica warehouse interface glade file.
     */
	public static final String EXPLICA_EDIT_WAREHOUSE_GLADE_PATH = "/org/ceteca/explica/client/warehouse/explicawarehouse.glade";
	
	/**
     * Path to the explica lot interface glade file.
     */
	public static final String EXPLICA_EDIT_LOT_GLADE_PATH = "/org/ceteca/explica/client/warehouse/explicalot.glade";
	
	/**
     * Path to the explica stock interface glade file.
     */
	public static final String EXPLICA_EDIT_STOCK_GLADE_PATH = "/org/ceteca/explica/client/warehouse/explicastock.glade";
	
	/* ----------------------------------------------------------------------
     *           CONSTANTS WITH THE NAMES OF THE GUI ELEMENTS
     *           FOR THE PRODUCT ENTITY
     * ---------------------------------------------------------------------- */
	/** Dialog name of the product edition dialog window */
    public static final String EDIT_PRODUCT_DIALOG_NAME = "dialogProduct";
    
    /** Name of the item product reference from the product edition panel */
    public static final String EDIT_PRODUCT_REFERENCE_ITEMNAME = "entryProductRef";
    
    /** Product reference widget's name from the product edition panel */
    public static final String EDIT_PRODUCT_REFERENCE_WIDGETNAME = "entryProductReference";
    /** Product description widget's name from the product edition panel */
    public static final String EDIT_PRODUCT_DESCRIPTION_WIDGETNAME = "textviewProductDescription";
    /** Product notebook widget's name from the product edition panel */
    public static final String EDIT_PRODUCT_NOTEBOOK_WIDGETNAME = "notebookProduct";
    /** Product general tab widget's name from the product edition panel */
    public static final String EDIT_PRODUCT_GENERAL_TAB_WIDGETNAME = "vboxProductGeneral";
    /** Product catalog tab widget's name from the product edition panel */
    public static final String EDIT_PRODUCT_CATALOG_TAB_WIDGETNAME = "vboxProductCatalog";
    /** Product family widget's name from the product edition panel */
    public static final String EDIT_PRODUCT_FAMILY_WIDGETNAME = "entryProductGroup";
    /** Product barcode widget's name from the product edition panel */
    public static final String EDIT_PRODUCT_BARCODE_WIDGETNAME = "entryProductBarcode";
    /** Product barcode type widget's name from the product edition panel */
    public static final String EDIT_PRODUCT_BARCODE_TYPE_WIDGETNAME = "entryProductBarcodeType";
    /** Product barcode image widget's name from the product edition panel */
    public static final String EDIT_PRODUCT_BARCODE_IMAGE_WIDGETNAME = "imageProductBarcode";
    /** Product vat type widget's name from the product edition panel */
    public static final String EDIT_PRODUCT_VAT_WIDGETNAME = "entryProductVAT";
    /** Product price widget's name from the product edition panel */
    public static final String EDIT_PRODUCT_PRICE_WIDGETNAME = "entryProductPrice";
    /** Product photo widget's name from the product edition panel */
    public static final String EDIT_PRODUCT_IMAGE_WIDGETNAME = "imageProductPhoto";
    /** Product previous photo button widget's name from the product edition panel */
    public static final String EDIT_PRODUCT_PREVIOUS_IMAGE_BUTTON_WIDGETNAME = "buttonProductPhotoPrev";
    /** Product next photo button widget's name from the product edition panel */
    public static final String EDIT_PRODUCT_NEXT_IMAGE_BUTTON_WIDGETNAME = "buttonProductPhotoNext";
    /** Product first photo button widget's name from the product edition panel */
    public static final String EDIT_PRODUCT_FIRST_IMAGE_BUTTON_WIDGETNAME = "buttonProductPhotoFirst";
    /** Product last photo button widget's name from the product edition panel */
    public static final String EDIT_PRODUCT_LAST_IMAGE_BUTTON_WIDGETNAME = "buttonProductPhotoLast";
    /** Product add photo button widget's name from the product edition panel */
    public static final String EDIT_PRODUCT_ADD_IMAGE_BUTTON_WIDGETNAME = "buttonProductPhotoAdd";
    /** Product delete photo button widget's name from the product edition panel */
    public static final String EDIT_PRODUCT_DELETE_IMAGE_BUTTON_WIDGETNAME = "buttonProductPhotoDel";
    
    /** Product group select button widget's name from the product edition panel */
    public static final String EDIT_PRODUCT_SELECT_PRODUCT_GROUP_BUTTON_WIDGETNAME = "buttonSelectProductGroup";
    /** Barcode type select button widget's name from the product edition panel */
    public static final String EDIT_PRODUCT_SELECT_BARCODE_TYPE_BUTTON_WIDGETNAME = "buttonSelectProductBarcodeType";
    /** VAT type select button widget's name from the product edition panel */
    public static final String EDIT_PRODUCT_SELECT_VAT_TYPE_BUTTON_WIDGETNAME = "buttonSelectProductVAT";
    
    /** Product save button widget's name from the product edition panel */
    public static final String EDIT_PRODUCT_SAVE_BUTTON_WIDGETNAME = "buttonProductSave";
    /** Product undo button widget's name from the product edition panel */
    public static final String EDIT_PRODUCT_UNDO_BUTTON_WIDGETNAME = "buttonProductUndo";
    /** Product cancel button widget's name from the product edition panel */
    public static final String EDIT_PRODUCT_CANCEL_BUTTON_WIDGETNAME = "buttonProductCancel";
    
    /** Product measure unit panel widget's name from the product edition panel */
    public static final String EDIT_PRODUCT_MEASUREUNIT_PANEL_WIDGETNAME = "vboxProductMeasureUnits";
    /** Product measure unit table widget's name from the product edition panel */
    public static final String EDIT_PRODUCT_MEASUREUNIT_TABLE_WIDGETNAME = "treeProductMeasureUnits";
    /** Product prices panel widget's name from the product edition panel */
    public static final String EDIT_PRODUCT_PRICELIST_PANEL_WIDGETNAME = "vboxProductPrices";
    /** Product prices table widget's name from the product edition panel */
    public static final String EDIT_PRODUCT_PRICELIST_TABLE_WIDGETNAME = "treeProductPrices";
    /** Product stock panel widget's name from the product edition panel */
    public static final String EDIT_PRODUCT_STOCK_PANEL_WIDGETNAME = "vboxProductStocks";
    /** Product stock table widget's name from the product edition panel */
    public static final String EDIT_PRODUCT_STOCK_TABLE_WIDGETNAME = "treeProductStock";
    
    /* -----------------------------------------------------------------------
     *                          HANDLERS NAMES:
     * Constants with the names of the handlers for the product entity
     * ----------------------------------------------------------------------- */
    /** Name of the handler for managing the resize event of product edition window */
    public static final String EDIT_PRODUCT_RESIZED_HANDLER = "on_product_resized";
    /** Name of the handler for managing the change event of product barcode number */
    public static final String EDIT_PRODUCT_BARCODE_CHANGED_HANDLER = "on_productBarcode_changed";
    /** Name of the handler for managing the clicked event of product go to first image button */
    public static final String EDIT_PRODUCT_IMAGE_FIRST_BUTTON_CLICKED_HANDLER = "on_productImageFirst_clicked";
    /** Name of the handler for managing the clicked event of product go to last image button */
    public static final String EDIT_PRODUCT_IMAGE_LAST_BUTTON_CLICKED_HANDLER = "on_productImageLast_clicked";
    /** Name of the handler for managing the clicked event of product go to next image button */
    public static final String EDIT_PRODUCT_IMAGE_NEXT_BUTTON_CLICKED_HANDLER = "on_productImageNext_clicked";
    /** Name of the handler for managing the clicked event of product go to previous image button */
    public static final String EDIT_PRODUCT_IMAGE_PREVIOUS_BUTTON_CLICKED_HANDLER = "on_productImagePrevious_clicked";
    /** Name of the handler for managing the clicked event of product add image button */
    public static final String EDIT_PRODUCT_IMAGE_ADD_BUTTON_CLICKED_HANDLER = "on_productImageAdd_clicked";
    /** Name of the handler for managing the clicked event of product delete image button */
    public static final String EDIT_PRODUCT_IMAGE_DELETE_BUTTON_CLICKED_HANDLER = "on_productImageDelete_clicked";
    
    
    /* ----------------------------------------------------------------------
     *           CONSTANTS WITH THE NAMES OF THE GUI ELEMENTS
     *           FOR THE PRODUCTGROUP ENTITY
     * ---------------------------------------------------------------------- */
	/** Dialog name of the product edition dialog window */
    public static final String EDIT_PRODUCTGROUP_DIALOG_NAME = "dialogProductGroup";
    
    /** Product group code widget's name from the product group edition panel */
    public static final String EDIT_PRODUCTGROUP_CODE_WIDGETNAME = "entryProductGroupId";
    /** Product group description widget's name from the product group edition panel */
    public static final String EDIT_PRODUCTGROUP_DESCRIPTION_WIDGETNAME = "textviewProductGroupDescription";

    
    /* ----------------------------------------------------------------------
     *           CONSTANTS WITH THE NAMES OF THE GUI ELEMENTS
     *           FOR THE MEASUREUNIT ENTITY
     * ---------------------------------------------------------------------- */
	/** Dialog name of the product edition dialog window */
    public static final String EDIT_MEASUREUNIT_DIALOG_NAME = "dialogMeasureUnit";
    
    /** Product group code widget's name from the product group edition panel */
    public static final String EDIT_MEASUREUNIT_CODE_WIDGETNAME = "entryMeasureUnitId";
    /** Product group description widget's name from the product group edition panel */
    public static final String EDIT_MEASUREUNIT_DESCRIPTION_WIDGETNAME = "textviewMeasureUnitDescription";
    
    /* ----------------------------------------------------------------------
     *           CONSTANTS WITH THE NAMES OF THE GUI ELEMENTS
     *           FOR THE WAREHOUSE ENTITY
     * ---------------------------------------------------------------------- */
	/** Dialog name of the product edition dialog window */
    public static final String EDIT_WAREHOUSE_DIALOG_NAME = "dialogWarehouse";
    
    /** Warehouse code widget's name from the warehouse edition panel */
    public static final String EDIT_WAREHOUSE_CODE_WIDGETNAME = "entryWarehouseId";
    /** Warehouse description widget's name from the warehouse edition panel */
    public static final String EDIT_WAREHOUSE_DESCRIPTION_WIDGETNAME = "textviewWarehouseDescription";
    /** Warehouse contact widget's name from the warehouse edition panel */
    public static final String EDIT_WAREHOUSE_CONTACT_WIDGETNAME = "entryWarehouseContact";
    /** Warehouse phone widget's name from the warehouse edition panel */
    public static final String EDIT_WAREHOUSE_PHONE_WIDGETNAME = "entryWarehousePhone";
    /** Warehouse fax widget's name from the warehouse edition panel */
    public static final String EDIT_WAREHOUSE_FAX_WIDGETNAME = "entryWarehouseFax";
    /** Warehouse notes widget's name from the warehouse edition panel */
    public static final String EDIT_WAREHOUSE_NOTES_WIDGETNAME = "textviewWarehouseNotes";
    /** Warehouse address widget's name from the warehouse edition panel */
    public static final String EDIT_WAREHOUSE_ADDRESS_WIDGETNAME = "textviewWarehouseAddress";
    

    /** Address select button widget's name from the warehouse edition panel */
    public static final String EDIT_WAREHOUSE_SELECT_ADDRESS_BUTTON_WIDGETNAME = "buttonSelectAddress";
    
    /* ----------------------------------------------------------------------
     *           CONSTANTS WITH THE NAMES OF THE GUI ELEMENTS
     *           FOR THE LOT ENTITY
     * ---------------------------------------------------------------------- */
	/** Dialog name of the lot edition dialog window */
    public static final String EDIT_LOT_DIALOG_NAME = "dialogLot";
    
    /** Lot code widget's name from the lot edition panel */
    public static final String EDIT_LOT_CODE_WIDGETNAME = "entryLotId";
    /** Lot description widget's name from the lot edition panel */
    public static final String EDIT_LOT_DESCRIPTION_WIDGETNAME = "textviewLotDescription";
    /** Lot number widget's name from the lot edition panel */
    public static final String EDIT_LOT_NUMBER_WIDGETNAME = "entryLotNumber";
    /** Lot creation date widget's name from the lot edition panel */
    public static final String EDIT_LOT_CREATIONDATE_WIDGETNAME = "entryLotCreationDate";
    /** Lot expiration date widget's name from the lot edition panel */
    public static final String EDIT_LOT_EXPIRATIONDATE_WIDGETNAME = "entryLotExpirationDate";
    /** Lot quantity widget's name from the lot edition panel */
    public static final String EDIT_LOT_QUANTITY_WIDGETNAME = "entryLotQuantity";
    /** Lot available widget's name from the lot edition panel */
    public static final String EDIT_LOT_AVAILABLE_WIDGETNAME = "entryLotAvailable";
    /** Lot product widget's name from the lot edition panel */
    public static final String EDIT_LOT_PRODUCT_WIDGETNAME = "entryLotProduct";
    
    /* ----------------------------------------------------------------------
     *           CONSTANTS WITH THE NAMES OF THE GUI ELEMENTS
     *           FOR THE STOCK ENTITY
     * ---------------------------------------------------------------------- */
	/** Dialog name of the lot edition dialog window */
    public static final String EDIT_STOCK_DIALOG_NAME = "dialogStock";
        

    /** Product select button widget's name from the lot edition panel */
    public static final String EDIT_LOT_SELECT_CREATIONDATE_BUTTON_WIDGETNAME = "buttonSelectCreationDate";
    /** Product select button widget's name from the lot edition panel */
    public static final String EDIT_LOT_SELECT_EXPIRATIONDATE_BUTTON_WIDGETNAME = "buttonSelectExpirationDate";
    /** Product select button widget's name from the lot edition panel */
    public static final String EDIT_LOT_SELECT_PRODUCT_BUTTON_WIDGETNAME = "buttonSelectProduct";
    
    /* -----------------------------------------------------------------------
     *                          ENTITY NAMES:
     * Constants with the names of the installed entities defined in the 
     * warehouse module and available for subentity selection dialog 
     * (magnifying glass buttons).
     * ----------------------------------------------------------------------- */
    /** Name of the Product entity */
    public static final String EXPLICA_ENTITY_PRODUCT_ID = "Product";
    /** Name of the Product Group entity */
    public static final String EXPLICA_ENTITY_PRODUCTGROUP_ID = "ProductGroup";
    /** Name of the Measure Unit entity */
    public static final String EXPLICA_ENTITY_MEASUREUNIT_ID = "MeasureUnit";
    /** Name of the Warehouse entity */
    public static final String EXPLICA_ENTITY_WAREHOUSE_ID = "Warehouse";
    /** Name of the Lot entity */
    public static final String EXPLICA_ENTITY_LOT_ID = "Lot";
    /** Name of the Stock entity */
    public static final String EXPLICA_ENTITY_STOCK_ID = "Stock";
    /** Name of the Product Stock entity */
    public static final String EXPLICA_ENTITY_PRODUCTSTOCK_ID = "ProductStock";
    
    
    
    
    /* -----------------------------------------------------------------------
     *                          SEQUENCE NAMES:
     * Constants with the names of the sequences used for the warehouse
     * tables.
     * ----------------------------------------------------------------------- */
    /** Name of the ProductGroup id sequence*/
    public static final String PRODUCTGROUP_ID_SEQUENCE_NAME = "productgroup_id_seq";
}
